package cn.edu.cqytxy.entity;

/**
 * 角色
 *
 * @author yinjw
 */
public class GameRole {

    /**
     * 构造方法
     */
    public GameRole() {
    }

    /**
     * 有参的构造方法
     *
     * @param id   id
     * @param high 身高
     */
    public GameRole(int id, float high) {
        this.id = id;
        this.high = high;
    }

    /**
     * 有参的构造方法
     *
     * @param id    id
     * @param high  身高
     * @param color 肤色
     */
    public GameRole(int id, float high, String color) {
        this.id = id;
        this.high = high;
        this.color = color;
    }

    /**
     * id
     */
    private int id;

    /**
     * 名称
     */
    private String name;

    /**
     * 身高
     */
    private float high;

    /**
     * 肤色
     */
    private String color;

    /**
     * 武器（聚合）
     */
    private Weapon weapon;

    /**
     * 背包
     */
    private Item[] items = new Item[5];

    public Item[] getItems() {
        return items;
    }

    public void setItems(Item[] items) {
        this.items = items;
    }

    public Weapon getWeapon() {
        return weapon;
    }

    public void setWeapon(Weapon weapon) {
        this.weapon = weapon;
    }

    public void setId(int id) {
        // this代表当前对象
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setHigh(float high) {
        this.high = high;
    }

    public void setColor(String color) {
        this.color = color;
    }

    public String getColor() {
        return this.color;
    }

    public int getId() {
        return id;
    }

    public float getHigh() {
        return high;
    }

    /**
     * 移动
     */
    public void move() {
        System.out.println("角色移动");
    }

    /**
     * 跳跃
     */
    public void jump() {
        System.out.println("名称为：" + this.name + "角色跳跃");
    }

    /**
     * 跑
     */
    public void run() {
        System.out.println("id=" + id + "的角色开始移动");
    }

    /**
     * 使用武器
     */
    public void useWeapon() {

        // 多态：父类的框架，子类的实质
        this.weapon.attack();
    }
}
